[HVM][VMX] Use CPUID instruction virtualization to workaround VMXAssist 4G limit.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 19 Oct 2006 14:49:16 +0000 (15:49 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 19 Oct 2006 14:49:16 +0000 (15:49 +0100)
commitda161aeaa8d1ef7af13e871a664d224034df3b5a
treee010e626964c9943469ee7d488046d7628c79ab9
parentbb7670b698be35d9b27adf04d15e63125b9e7d5a
[HVM][VMX] Use CPUID instruction virtualization to workaround VMXAssist 4G limit.

Address space access limit in VMXAssist is 4G, because IA-32 only has
4GB virtual address space which VMXassist can use to map physical
memory. The issue is, win2k3 server with more than 4G memory will put
AP GDT above 4G, so when AP changes its mode from real mode to PAE
paging mode, the long jump instrction it uses need access AP GDT
entries which resides above 4G, but because of this constraint, it can
not access GDT and so fails boot.

Signed-off-by: Xin Li <xin.b.li@intel.com>
tools/firmware/vmxassist/util.c
tools/firmware/vmxassist/util.h
tools/firmware/vmxassist/vm86.c
xen/arch/x86/hvm/vmx/vmx.c